package com.ruoyi.program.service;

import com.alipay.api.domain.Data;
import com.ruoyi.program.domain.CreateNameOrder;
import java.util.Map;
import java.util.List;

/**
 * 创建订单服务类Service接口
 * 
 * @author 陈冲
 * @date 2025-04-21 15:20:00 创建订单服务类
 */
import org.apache.ibatis.annotations.Param;
import java.util.Date;

public interface ICreateNameOrderService {
  /*
   * 创建订单服务
   * 
   * @Param createNameOrder 创建订单实体类
   * 
   * @return int 插入结果
   */
  public int createNameOrderService(CreateNameOrder createNameOrder);

  /*
   * 根据订单号更新订单状态
   * 
   * @Param orderId 订单号
   * 
   * @Param status 订单状态
   * 
   * @return int 更新结果
   */
  // 导入 java.util.Date 类以解决 Date 类型无法解析的问题
  public int updateNameOrderService(Integer status, String outTradeNo, Date payTime);

  /*
   * 根据订单号查询订单信息
   * 
   * @Param orderId 订单号
   * 
   * @return CreateNameOrder 查询结果
   */
  public CreateNameOrder selectNameOrderService(String tradeNO);

  /*
   * 更新支付宝交易号
   * 
   * @Param tradeNo 支付宝交易号
   * 
   * @return int 更新结果
   */
  public int updateAlipayTradeNoService(String tradeNo, String orderNo);

  /*
   * 批量插入名字
   * 
   * @Param insertParams 插入参数
   * 
   * @return int 插入结果
   */
  void insertNamesByOrderNo(Map<String, Object> insertParams);

  /*
   * 根据小程序用户查询订单列表
   * 
   * @Param userId 小程序用户ID
   * 
   * @return List<CreateNameOrder> 订单列表
   */
  public List<CreateNameOrder> selectUserOrderListService(@Param("userId") String userId,
      @Param("status") Integer status);

  /*
   * 根据订单号查询订单信息
   * 
   * @Param orderNo 订单号
   * 
   * @return CreateNameOrder 查询结果
   */
  // 为避免方法名重复，修改方法名为 selectNameListByOrderNo
  public CreateNameOrder selectNameDetailsByOrderNo(@Param("orderNo") String orderNo);

  // 风险接口
  public String querySurname(@Param("surname") String surname);

}
